In conventional computer systems that have a plurality of information processing apparatuses (hereinafter, referred to as nodes), parallel programs are executed by a process allocated to a node communicating with a process allocated to another node.
If a node to which a communication destination process is allocated is different from a node to which a communication source process is allocated, the nodes through which the process passes at the time of communication differ and the communication hop count, which indicates the number of nodes passed through, also differ. Accordingly, communication processing time between processes is affected by the location of the node to which a process is allocated.
The relation between the locations of nodes to which processes are allocated and the communication processing time will be described with reference to FIGS. 10A to 10C. FIG. 10A is a schematic diagram illustrating a process that is used as a communication destination with respect to a communication source process. FIGS. 10B and 10C are schematic diagrams each illustrating an example of a process allocation.
In the example illustrated in FIG. 10B, each process is allocated such that the communication hop count is “1”. In other words, each process communicates with a process that is allocated to a node adjacent to that process. In such a case, because each node only communicates with an adjacent node, the path between each node and the adjacent node is not used for communication with other processes. If processes are allocated in this way, the communication processing time is reduced.
In contrast, in the example illustrated in FIG. 10C, processes are allocated such that the communication hop count is “2” or more. Specifically, if a process 6 communicates with a process 2, the process 6 passes through four nodes, i.e., a node 903, a node 900, a node 901, and a node 902. Accordingly the communication hop count is “4”. Furthermore, a path between a node 906 and the node 903 through which the process 6 communicates with the process 2 is also used for communication between the process 6 and a process 3. Accordingly, in the process allocation illustrated in FIG. 10C, the number of nodes to be passed through for a single communication is large and nodes are used for multiple communication, thereby the communication processing time is longer when compared with a case in which processes are allocated like that illustrated in FIG. 10B.
As described above, in a computer system, to reduce the communication processing time, the allocation of processes to nodes is optimized. For example, the computer system measures the communication processing time of the processes allocated to the nodes and evaluates the process allocation. Furthermore, in order to save trouble of measurement of the communication processing time needed each time, the computer system calculates an evaluation value of the process allocation and then evaluates the process allocations relative to each other on the basis of the calculated value.
For example, the computer system uses Equation (A) below to evaluate the process allocations relative to each other:
                    F        =                              ∑                          i              ,                              j                ∈                                                                  ⁢                                  ALL                  ⁢                                                                          ⁢                  PROCESSES                                                              ⁢                      {                                          hop                ⁡                                  (                                                            node                      ⁡                                              (                        i                        )                                                              ,                                          node                      ⁡                                              (                        j                        )                                                                              )                                            ×                              size                ⁡                                  (                                      i                    ,                    j                                    )                                                      }                                              (        A        )            
In Equation (A), {hop(node(i), node(j))} represents the communication hop count between a communication source process (a process executed by a node (i)) and a communication destination process (a process executed by a node (j)), whereas size (i, j) represents the communication traffic between the communication source process and the communication destination process. Specifically, an evaluation value of F indicates the sum of the values obtained by multiplying the communication hop count by the communication traffic of all of the combinations of the communication source processes and the communication destination processes. According to Equation (A), the evaluation value F becomes small in accordance with the allocation in which communication hop count is reduced for processes that perform a large amount of communication. Accordingly, the computer system calculates a value using Equation (A) and allocates a process such that the calculated value is smaller than a predetermined threshold.    Patent Document 1: Japanese National Publication of International Patent Application No. 2008-516346
However, in the conventional technology, there is a problem in that the process allocation is not accurately evaluated.
For example, in the conventional technology, the communication processing time is reduced by allocating processes such that the communication hop count is reduced as the communication volume of the process increases. The problem is that, in the conventional technology, the communication traffic between processes is taken into consideration, but the communication traffic between nodes is not taken into consideration. Accordingly, there may be a case in which processes are allocated such that, even if the communication hop count is small, communication is concentrated on specific nodes. If processes are allocated in this way, the communication processing time increases.